const fs = require('fs');
const path = require('path');
// 读取文件内容
// 参数1：读取文件的路径
// 参数2：读取文件的编码格式，默认值为null
// 参数3：回调函数，回调函数中两个参数，err是错误对象，dataStr是读取的内容
// 注意：如果读取的文件不存在，err的值为对象，dataStr的值为undefined
fs.readFile('./files/poem.text', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log('读取文件失败！' + err.message);
    }
    console.log('读取文件成功！' + dataStr);
});
console.log('异步读取文件，不会阻塞后续代码');
// 写入文件内容
// 参数1：写入文件的路径
// 参数2：写入的内容
// 参数3：回调函数，回调函数中只有一个参数，err是错误对象
// 注意：如果文件不存在，会自动创建文件，如果文件存在，会覆盖文件
fs.writeFile('./files/hello.txt', '你好，世界！', function (err) {
    if (err) {
        return console.log('写入文件失败！' + err.message);
    }
    console.log('写入文件成功！');
})
// 追加文件内容
// 参数1：追加文件的路径
// 参数2：追加的内容
// 参数3：回调函数，回调函数中只有一个参数，err是错误对象
// 注意：如果文件不存在，会自动创建文件，如果文件存在，会在文件的末尾追加内容
fs.appendFile('./files/poem.text', '李白是个伟大的诗人', function (err) {
    console.log(err); // null
    // 注意：如果文件不存在，会自动创建文件，如果文件存在，会在文件的末尾追加内容
})
// 删除文件
// 参数1：删除文件的路径
// 参数2：回调函数，回调函数中只有一个参数，err是错误对象
// 注意：如果文件不存在，不会报错，如果文件存在，会删除文件
fs.unlink('./files/poem.text', function (err) {
    console.log(err); // null
})
fs.readFile(path.join(__dirname,'/files/poem.text'), 'utf8', function (err, dataStr) {
    console.log(dataStr); // hello world
})